package cn.stylefeng.guns.cloud.workflow.modular.service;

import cn.stylefeng.guns.cloud.model.page.PageResult;
import cn.stylefeng.guns.cloud.workflow.modular.model.params.ApproveParam;
import cn.stylefeng.guns.cloud.workflow.modular.model.params.TaskParam;

/**
 * 待办任务 服务类
 *
 * @Author xuyuxiang
 * @Date 2019/11/14 16:24
 **/
public interface TodoTaskService<T> {

    /**
     * 查询我的待办任务列表
     *
     * @Author xuyuxiang
     * @Date 2019/10/30 17:23
     **/
    PageResult list(TaskParam taskParam);


    /**
     * 审批
     *
     * @Author xuyuxiang
     * @Date 2019/11/4 14:36
     **/
    void doneTask(ApproveParam approveParam);

    /**
     * 重新申请或取消申请
     *
     * @Author xuyuxiang
     * @Date 2019/11/5 16:43
     **/
    void reStartOrCancelRequire(T entity, Integer approveOperate);

    /**
     * 委托（被委托人处理后任务依然转给委托人，只是多一条审批记录）
     *
     * @Author xuyuxiang
     * @Date 2019/11/7 17:11
     **/
    void entrust(TaskParam taskParam);

}
